package appstudio7i.controladores;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import appstudio7i.modelo.Local;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.ArrayList;
/**
 * @author pcsiecon
 */
public class AdmLocales {
    private ArrayList<Local> locales = new ArrayList<Local>();
    private String rutaLocales = "locales.txt";

    public AdmLocales() {
        cargaDatos();
    }        
    
    public ArrayList<Local> cargaDatos() {

        FileReader fr = null;
        BufferedReader br = null;

        try {
            fr = new FileReader(rutaLocales);
            br = new BufferedReader(fr);
            String linea;

            Local local = null;
            while ((linea = br.readLine()) != null) {
                String [] datos = linea.split("#");
                local = new Local(datos[0], datos[1], datos[2]);
                locales.add(local);
            }
        } catch (FileNotFoundException e){
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != fr) {
                    fr.close();
                }
            } catch (Exception ee){
                ee.printStackTrace();
            }
        }
        return locales;
    }

    private void actualizaLocales() {
        //System.out.println("Total: " + salas.size() + " - rutaSalas: " + rutaSalas);
        try {
            PrintWriter pwLocal = new PrintWriter(new FileWriter(rutaLocales));
            for(Local local : locales){
                pwLocal.println(local.getCodigo() + "#"
                         + local.getNombre() + "#"
                         + local.getDireccion() + "#");
            }
            pwLocal.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
   
    public boolean  registrarLocal(String codigo, String nombre, String direccion) {
        boolean registrado = false;   
        Local nuevoLocal = new Local(codigo, nombre, direccion);
        locales.add(nuevoLocal);
        registrado = true;
        actualizaLocales();
        return registrado;
        }


    public int obtenerTotalLocales() {
        return locales.size();
    }

    public boolean localExiste(String codigo) {
        for(Local local : locales)
            if (local.getCodigo().equals(codigo))
                return true;
        return false;
    }

    public Local buscarLocal(String codigo) {
        for(Local local : locales)
            if (local.getCodigo().equals(codigo))
                return local;
        return null;
    }

    public void eliminarLocal(String codigo) {
        Local local = buscarLocal(codigo);
        if (local != null)
            locales.remove(local);
    }
}










 /*     if (! localExiste(codigo)){
            // Crear un nuevo local
            Local nuevoLocal = new Local(codigo, nombre, direccion);
            // Insertar en la coleccion de locales
            locales.add(nuevoLocal);
            actualizaLocales();
            registrado = true;
        }
        return registrado;
       }
*/




//validarDatosSala(codigo, nombre, direccion);